
package web.reclamos.dao.sql;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import web.reclamos.beans.Coorporacion;
import web.reclamos.beans.Empresa;
import web.reclamos.dao.EmpresaDao;
import web.reclamos.dao.exception.ExceptionReclamos;


public class EmpresaDaoSql implements EmpresaDao{

    public void crear(Empresa entidad) throws ExceptionReclamos {
       Connection cn = null;
        PreparedStatement pstm = null;
        try{
            cn = ConexionDB.getInstance().getConnection();
            String sql = "insert into empresa (id_empresa, nombre_empresa, local_empresa, rubro_empresa, id_coorporacion) values (?,?,?,?,?)";
            pstm = cn.prepareStatement(sql);
            pstm.setInt(1, entidad.getId_empresa());
            pstm.setString(2, entidad.getNombre_empresa());
            pstm.setString(3, entidad.getLocal_empresa());
            pstm.setString(4, entidad.getRubro_empresa());
            pstm.setInt(5, entidad.getCoorporacion().getId_coorporacion());
            pstm.executeUpdate();
        }catch(SQLException ex){
            System.out.println(ex);
        }catch(Exception ex){
              System.out.println(ex);
        }finally{
            ConexionDB.getInstance().close(pstm);
            ConexionDB.getInstance().close(cn);
        }
    }

    public void modificar(Empresa entidad) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public void eliminar(int id) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public Empresa traerPorId(int id) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public List<Empresa> traerTodo() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    public List<Empresa> traerPorNombre(String nombre) {
        Connection cn = null;
        PreparedStatement pstm = null;
        ResultSet rs = null;
        List<Empresa> empresas = new ArrayList<Empresa>();
        try{
            cn = ConexionDB.getInstance().getConnection();
            String sql = "select * from empresa where nombre_empresa like ?";
            pstm = cn.prepareStatement(sql);
            pstm.setString(1, nombre + "%");
            rs = pstm.executeQuery();
            while(rs.next()){
                empresas.add(new Empresa(rs.getInt("id_empresa"),
                                         rs.getString("nombre_empresa"),
                                         rs.getString("local_empresa"),
                                         rs.getString("rubro_empresa")                                         
                             ));
            }
        }catch(SQLException ex){
            System.out.println(ex);
        }catch(Exception ex){
              System.out.println(ex);
        }finally{
            ConexionDB.getInstance().close(rs);
            ConexionDB.getInstance().close(pstm);
            ConexionDB.getInstance().close(cn);
        }
        return empresas;
    }

}
